package com.ansion.commonchat.startup.workmanager.bwork.impl.mode;

import java.util.List;

/**
 * Created by wanghongjie on 2023/5/5
 * Describe :  BWorkManager 中 Work 之间的依赖关系 ，提供API供外部调用
 */

public interface BDependencyDao {

    /**
     * 插入一个 Dependency 对象。如果该对象已经存在，则不会发生任何操作
     */
    void insertDependency(BDependency dependency);

    /**
     * 查询某个 WorkSpec 是否已经完成了所有的前置依赖工作。
     * 该方法返回一个布尔值，如果该 WorkSpec 没有任何未完成的前置依赖工作，
     * 则返回 true，否则返回 false。
     */
    boolean hasCompletedAllPrerequisites(String id);

    /**
     * 获取依赖于某个 WorkSpec 的所有 WorkSpec 的唯一标识符。
     */
    List<String> getDependentWorkIds(String id);

    void logout();
}